using System;
using System.IO;
using System.Diagnostics;
using System.Reflection;
using System.Text;
using PIM.Utilities.DataAccess;

namespace PIM.Utilities.Logging
{
    /// <summary>
    /// Summary description for QSLogConfiguration.
    /// </summary>
    public class QSLogConfiguration
    {
        string sApplicationName;
        int iActionOwner;
        bool bActionRequired;
        //string sLOGDB;
        PIMManager oQSMgr;
        QSLogger.Level eLogLevel = QSLogger.Level.Warning;
        QSLogger.Level eEVErrorLevel = QSLogger.Level.Warning;

        public QSLogger.Level LogLevel
        {
            get { return eLogLevel; }
            set { eLogLevel = value; }
        }
        public QSLogger.Level EventViewerErrorLevel
        {
            get { return eEVErrorLevel; }
            set { eEVErrorLevel = value; }
        }
        public string ApplicationName
        {
            get { return sApplicationName; }
            set { sApplicationName = value; }
        }
        public int ActionOwner
        {
            get { return iActionOwner; }
            set { iActionOwner = value; }
        }
        public bool ActionRequired
        {
            get { return bActionRequired; }
            set { bActionRequired = value; }
        }
        //public string DBLOG
        //{
        //    get { return sLOGDB; }
        //    set { sLOGDB = value; }
        //}
        public PIMManager QSDBManager
        {
            get { return oQSMgr; }
            set { oQSMgr = value; }
        }
        public QSLogConfiguration()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        /// <summary>
        /// Clones the QSLogConfiguration except QSDBManager
        /// </summary>
        /// <returns></returns>
        public QSLogConfiguration Clone()
        {
            QSLogConfiguration result = new QSLogConfiguration();
            result.ActionOwner = ActionOwner;
            result.ActionRequired = ActionRequired;
            result.ApplicationName = ApplicationName;
            result.EventViewerErrorLevel = EventViewerErrorLevel;
            result.LogLevel = LogLevel;
            return result;
        }
    }
}
